package model;

import java.util.LinkedHashMap;

import br.com.site.R;

import com.google.android.maps.GeoPoint;

public class Vitima extends PDI {

	private int icone = R.drawable.victim_icon;
	private int tipo = 6;
	private Estrutura estrutura;
	private Equipe equipe;
	private Perigo perigo;
	private String identificacao;
	private int numPosVit, qtdViv, qtdMor, qtdVivRes, qtdMorRem;
	
	public Vitima(String Latitude, String Longitude, String Titulo, String Texto,
			Estrutura estrutura, Equipe equipe, Perigo perigo,
			String identificacao, int numPossiveisVitimas, int qtdVivos, int qtdMortos, int qtdVivosResgatados, int qtdMortosRemovidos) {
		super(Latitude, Longitude, Titulo, Texto);
		this.setAtributos(estrutura, equipe, perigo, identificacao, numPossiveisVitimas, qtdVivos, qtdMortos, qtdVivosResgatados, qtdMortosRemovidos);
	}
	
	public Vitima(GeoPoint p, String Titulo, String Texto,
			Estrutura estrutura, Equipe equipe, Perigo perigo,
			String identificacao, int numPossiveisVitimas, int qtdVivos, int qtdMortos, int qtdVivosResgatados, int qtdMortosRemovidos) {
		super(p, Titulo, Texto);
		this.setAtributos(estrutura, equipe, perigo, identificacao, numPossiveisVitimas, qtdVivos, qtdMortos, qtdVivosResgatados, qtdMortosRemovidos);		
	}
	
	private void setAtributos(Estrutura estrutura, Equipe equipe, Perigo perigo,
			String identificacao, int numPossiveisVitimas, int qtdVivos, int qtdMortos, int qtdVivosResgatados, int qtdMortosRemovidos){
		this.equipe = equipe;
		this.estrutura = estrutura;
		this.perigo = perigo;
		this.numPosVit = numPossiveisVitimas;
		this.qtdViv = qtdVivos;
		this.qtdMor = qtdMortos;
		this.qtdVivRes = qtdVivosResgatados;
		this.qtdMorRem = qtdMortosRemovidos;
		this.identificacao = identificacao;
		
		this.atualizaTextoBalao();
	}
	
	public void atualizaTextoBalao() {
		String textoBalao = "";
		if(this.getNumeroPossiveisVitimas() >= 0) textoBalao += "Possíveis vítimas: " + this.getNumeroPossiveisVitimas();
		if(this.getQtdVivos() >= 0) textoBalao += ", Vivos confirmados: " + this.getQtdVivos();
		
		if (estrutura != null){
			textoBalao += "\nEstrutura: " + estrutura.toString();
			if(!estrutura.getTamanhoDoAcesso().equals("") || !estrutura.getTamanhoDoAcesso().equals(null)) textoBalao += "\nTamanho do acesso: "+ estrutura.getTamanhoDoAcesso();
			if(!estrutura.getDificuldadeDeEntrada().equals("") || !estrutura.getDificuldadeDeEntrada().equals(null)) textoBalao += ", Dific. de entrada: "+ estrutura.getDificuldadeDeEntrada();
		}
		if (equipe != null){
			textoBalao += "\nEquipe: " + equipe.toString();
			if(!equipe.getChefe().equals("") || !equipe.getChefe().equals(null)) textoBalao += ", Chefe: "+ equipe.getChefe();
		}
		if (perigo != null){
			textoBalao += "\nPerigo: " + perigo.toString();
		}
		
		this.setTextoBalao(textoBalao);
	}

	public String getIdentificacao() {
		return identificacao;
	}

	public void setIdentificacao(String identificacao) {
		this.identificacao = identificacao;
		super.setTituloBalao(identificacao);
	}

	public int getNumeroPossiveisVitimas() {
		return numPosVit;
	}

	public void setNumeroPossiveisVitimas(int numPosVit) {
		this.numPosVit = numPosVit;
	}

	public int getQtdVivos() {
		return qtdViv;
	}

	public void setQtdVivos(int qtdViv) {
		this.qtdViv = qtdViv;
	}

	public int getQtdMortos() {
		return qtdMor;
	}

	public void setQtdMortos(int qtdMor) {
		this.qtdMor = qtdMor;
	}

	public int getQtdVivosResgatados() {
		return qtdVivRes;
	}

	public void setQtdVivosResgatados(int qtdVivRes) {
		this.qtdVivRes = qtdVivRes;
	}

	public int getQtdMortosRemovidos() {
		return qtdMorRem;
	}

	public void setQtdMortosRemovidos(int qtdMorRem) {
		this.qtdMorRem = qtdMorRem;
	}

	public Estrutura getEstrutura() {
		return estrutura;
	}

	public Equipe getEquipe() {
		return equipe;
	}

	public Perigo getPerigo() {
		return perigo;
	}

	public int getIcone() {
		return icone;
	}

	@Override
	public String toString() {
		return identificacao + ", Possíveis vítimas: " + numPosVit + ", Vivos confirmados: " + qtdViv ;
	}

	public void setEstrutura(Estrutura estrutura) {
		this.estrutura = estrutura;
	}

	public void setEquipe(Equipe equipe) {
		this.equipe = equipe;
	}

	public void setPerigo(Perigo perigo) {
		this.perigo = perigo;
	}
	
	@Override
	public int getTipo(){
		return tipo;
	}
	
	public String getXML(){
		LinkedHashMap<String, String> mapa = new LinkedHashMap<String, String>();
		mapa.put("identificacao", this.getIdentificacao());
		mapa.put("numPosVit", String.valueOf(this.getNumeroPossiveisVitimas()));
		mapa.put("qtdVivos", String.valueOf(this.getQtdVivos()));
		mapa.put("qtdMortos", String.valueOf(this.getQtdMortos()));
		mapa.put("qtdVivResgatados", String.valueOf(this.getQtdVivosResgatados()));
		mapa.put("qtdMortRemovidos", String.valueOf(this.getQtdMortosRemovidos()));
		
		return super.getXML("vitima", mapa);
	}
	

}
